Framework for Slideshow Object

ABSTRACT

A system in accordance with the present invention may include one or more processors, memory that receives instructions from the one or more processors according to a clock operating at a frequency, one or more programs stored in the memory, with instructions to: define a layer, wherein the layer comprises one or more effects; associate media content with the layer; aggregate the layer with one or more other layers; and, assemble the aggregated layers.

This application claims the benefit and priority of the U.S. ProvisionalPatent Application No. 61/193,851 filed on Dec. 30, 2008, which ishereby incorporated by reference.

FIELD OF INVENTION

The present invention relates generally to the field of mediapresentations and, in particular, to authoring, rendering, viewing,exporting, and sharing media presentations.

BACKGROUND OF INVENTION

Current media presentation applications offer features for creatingslides and manually customizing the ways in which a set of slides, i.e.,a slideshow/media presentation, is played. Such applications also offerfeatures for attaching themes to slideshows, where such themes mayaffect the appearance and general behavior of the slideshows whenplayed. In addition, such applications further offer features such ascustomizing slide colors, customizing transition behavior, customizingtransition delay, and manually adding clip art/image/audio/video filesto one or more slides in a slideshow. These applications also permitbasic sequential transition, forward or backward, and from one slide toanother in a slideshow containing more than one slide. A user maycustomize the time that one slide should be viewed prior to theapplication invoking a transition to another slide, which may furtherhave a custom viewing time associated with it as well. However, currentmedia presentations applications do not provide a feature for authoringmedia presentations, comprising: defining a layer, wherein the layercomprises one or more effects; associating media content with the layer;aggregating the layer with one or more other layers; and assembling theaggregated layers. Moreover, current media presentation applicationsalso do not provide a feature for dynamically profiling a slideshowsoundtrack based on various criteria like beats per minute (BPM),rhythmic strength (RS), harmonic complexity (HC), and/or root meansquare density (RMS or RMS strength). Such criteria, when profiledintelligently, may be further used to select appropriate effects andassemble such effects in useful ways applicable to a slideshow. Further,such effects could be customized according to durations, in/out points,and transitions in-sync with audio alone or the audio of a video.Finally, current media presentation applications do not provide featuresfor automatic, as well as user-defined, authoring, rendering, exporting,and sharing media presentations/slideshows in an easily integratedmodern platform.

SUMMARY OF THE INVENTION

Accordingly, the present invention is directed to a system and methodfor authoring, rendering, exporting, and sharing media presentationsthat substantially obviates one or more problems due to limitations anddisadvantages of the related art.

An embodiment of the present invention provides a computer-implementedmethod for authoring media presentations, comprising: defining a layer,wherein the layer comprises one or more effects; associating mediacontent with the layer; aggregating the layer with one or more otherlayers; and assembling the aggregated layers.

Additional features and advantages of the invention will be set forth inthe description which follows, and in part will be apparent from thedescription, or may be learned by practice of the invention. Theobjectives and other advantages of the invention will be realized andattained by the structure particularly pointed out in the writtendescription and claims hereof as well as the appended drawings.

To achieve these and other advantages and in accordance with the purposeof the present invention, as embodied and broadly described, a systemcomprises one or more processors; memory; one or more programs stored inmemory, the one or more programs comprising instructions to: define alayer, wherein the layer comprises one or more effects; associate mediacontent with the layer; aggregate the layer with one or more otherlayers; and assemble the aggregated layers.

In another aspect, a computer-readable storage medium stores one or moreprograms configured for execution by a computer, the one or moreprograms comprising instructions to: define a layer, wherein the layercomprises one or more effects; associate media content with the layer;aggregate the layer with one or more other layers; and assemble theaggregated layers.

In yet another aspect, a computer program product stores one or moreinstructions for execution by a computer, the one or more instructionscomprising: creating a document; associating one or more layers to thedocument, wherein the layers are organized within the document;associating one or more effect containers with the layers, wherein theeffect containers are linked and are organized within the layers;associating one or more effects with the effect containers; andassembling the effects, effect containers, and layers logically withinthe document.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and areintended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the invention and are incorporated in and constitute apart of the specification, illustrate embodiments of the invention andtogether with the description serve to explain the principles of theinvention. In the drawings:

FIG. 1 illustrates an exemplary embodiment of an application inaccordance with the present invention;

FIG. 2 illustrates features of an exemplary embodiment in accordancewith the present invention;

FIG. 2A illustrates features of an exemplary embodiment in accordancewith the present invention;

FIG. 3 is a block diagram illustrating framework features of anexemplary embodiment in accordance with the present invention;

FIG. 3A is a block diagram illustrating framework features of anexemplary embodiment in accordance with the present invention;

FIG. 4 illustrates an exemplary system implementing an application inaccordance with the present invention;

FIG. 5 illustrates an exemplary implementation of an application inaccordance with the present invention;

FIG. 6 illustrates an exemplary method in accordance with the presentinvention; and

FIG. 7 illustrates an exemplary method in accordance with the presentinvention.

DETAILED DESCRIPTION

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous non-limiting specific details are set forth inorder to assist in understanding the subject matter presented herein. Itwill be apparent, however, to one of ordinary skill in the art thatvarious alternatives may be used without departing from the scope of thepresent invention and the subject matter may be practiced without thesespecific details. For example, it will be apparent to one of ordinaryskill in the art that the subject matter presented herein can beimplemented on any type of standalone system or client-server compatiblesystem containing any type of client, network, server, and databaseelements.

FIG. 1 illustrates an exemplary embodiment of an application inaccordance with the present invention. The exemplary embodiment of anapplication 1000 comprises a document 1001, a set of controls 1002 forcontrolling/manipulating the document 1001, an edit layers and effectcontainers region 1003 (e.g., steps 6001, 7001), a background layer 1004with effect containers and effects associated with the effectcontainers, a foreground layer 1005 with effect containers and effectsassociated with the effect containers, a text typewriter 1006 forassociating text with one or more effect containers/effects/slides, adocument length 1007 indicator, a select media content menu 1008 (e.g.,steps 6002, 7002), a main effects library 1009, a documents selectionmenu 1010 for selecting among available documents, one or more effects1011 (which may be available according to a filter criteria) within themain effects library 1009, a subset of the main effects library 1012, agap variable 1013 for separating an effect or effect container (with oneor more effects and slides) from the next effect or effect containerusing a gap, a transition variable 1014 for separating an effect oreffect container (with one or more effects and slides) from the nexteffect or effect container using a transition, and an effect style 1015(also, name or property). The exemplary embodiment of an application1000 illustrates a use of the application 1000 to create a document 1001(e.g., steps 6004, 7004) using a background layer 1004, a foregroundlayer 1005 (additional background/foreground layers may also be added tothe document but may not be illustrated in FIG. 1) (e.g., steps 7008,7009), customized gaps 1013 and/or transitions 1014 separating effectcontainers. Effect containers may comprise, for example, one or moreeffects from, for example, the main effects library 1009 or the subsetof the main effects library 1012; and, effects may further comprise oneor more slides like, for example, images, movies, audio, text (e.g., astring with font information that may determine how text will look andfeel), and other media content (e.g., steps 6002, 7002, 7006, 7012,7013). Effects may determine how the image and its surroundings willappear on a screen/display during play (e.g., an image may be displayedaccording to “book theme,” where the effect would be thefeature/component for determining how the photos may be laid out ororganized on-screen; an effect may store/pass information related to howa photo would bounce around on a screen; or, an effect may alsostore/pass information related to text, where the text may be added orassociated with a slide, effect, layer, or document of a slideshow/mediapresentation). Further, effects may be filtered according to mediacontent type using the select media content menu 1008. For example,images, video, audio, text, and captions may be used to filter effectsaccordingly. Meaning, the relevant effects associated with each of theforegoing types of media content may be displayed accordingly uponinvocation of the respective menu item from the select media contentmenu 1008. Details regarding effects may be displayed in the effectsstyle 1015 section, which may be positioned beneath each respectiveeffect container, and corresponding to a presently active effect, in theeffect containers region 1003.

In some embodiments, the exemplary embodiment of an application 1000,and its features/components, may be implemented by one or moremodules/engines (FIG. 3A, reference numerals 3020-23) executed using anexemplary system 4000 (FIG. 4) with a central processing unit (CPU) 4001(and, alternatively, multiple CPUs), memory 4002 for storing data (e.g.,instructions from an operating system 4007 or one or more programs(e.g., 4008, 4009)) to be fetched by the CPU for execution, a displaydevice 4003 for displaying the exemplary application 1000 using agraphics module to a display screen, a network interface card (NIC) 4004for sending and receiving data over a wired or wireless communicationsnetwork, local storage 4006 for storing media content and other data(e.g., an operating system 4007, the exemplary embodiment of anapplication 1000, other applications, etc.), and auxiliarydevice(s)/component(s) 4005 (e.g., TV (or, other display), portablestorage, portable media player, etc.), which may all be connected via abus for sending and receiving data according to a frequency (e.g.,synchronous or asynchronous).

In some embodiments, the features/components of the application 1000 maybe described as follows. The document 1001 (also, FIG. 3, referencenumeral 3001) is the top level object of the mediapresentation/slideshow that may be created (e.g., steps 6004, 7004)using the exemplary application 1000. The document is the object thatmay comprise: all of the custom/default layers 1004, 1005 (also, FIG. 3,reference numeral 3002) (e.g., steps 6003, 7003, 7010), effectcontainers such as, for example, those within the effect containersregion 1003 (also, FIG. 3, reference numeral 3003); effects such as, forexample, those within the effect containers (also, FIG. 3, referencenumeral 3004); gaps 1013 or transitions 1014 for separating or linkingeffects, respectively (also, FIG. 3, reference numeral 3012); slidessuch as, for example, the images of FIG. 1 or other media content asdescribed above (also, FIG. 3, reference numeral 3005, 3010) (e.g., step6002, 7002); frames 3006; a document/layer/effect stack 3007; alayer/effect/slide/filter stack 3011; a playlist 3008; an animation path3014; a song 3009; a keyframe 3015 (which may, for example, be onedimensional (1D) 3016, two dimensional (2D) 3017 or a vector (3018));filters 3019; a layer/effect container/effect/slide/filter stack 3013;and, any other possible combination of the aforementioned. Moreover, adocument may contain layers that may be stacked/placed one on top ofanother to provide the media presentation/slideshow with an added levelof flexibility in what is available for actual display (e.g., steps6003, 7003, 7010). Accordingly, the application supports thepresentation of less than all of the available layers. Stacking mayinvolve a process, for example, of logically associating, or linking,layers. That is, a background layer 1004 may be considered the lowestlevel layer in a stack of layers, followed by a foreground layer 1005and a plurality of other foreground layers, all of which would belogically associated according to their position from, for example,background layer 1004, or from each other foreground layer. Duringdisplay/play of a document such as, for example, document 1001, thelayers would be displayed/played according to their respective positionsin the stack (logical associations). The next feature/component is thelayers 1004 (background), 1005 (foreground) (also, FIG. 3, referencenumeral 3002) within a document 1001 (also, FIG. 3, reference numeral3001) (e.g., steps 6001, 7001). Each layer 1004, 1005 of a stack oflayers (e.g., aggregated layers; steps 6003, 7003) within a document canbe positioned, sized, and rotated using the exemplary application 1000.Further, each layer 1004, 1005 may also have a custom audio file/track(or, alternatively, a set of audio files/tracks, or other media content)associated with it and other layers 1004, 1005, thus, providing a mediapresentation/slideshow with multiple audio files/tracks duringpresentation (e.g., steps 6002, 7002). Each layer 1004, 1005 may alsocontain effect containers (like, for example, those illustrated in theeffect containers region 1003) (e.g., steps 6002, 7002), which may belinked together in a layer using transitions 1014 (also, FIG. 3,reference numeral 3012) or separated from one another using gaps 1013(or, alternatively, some other effect separation variable like, forexample, random separation/transition, or a combination of gaps andtransitions, etc.) (e.g., 7005). Transitions 1014, which through visualaction/expression may create the appearance that two effect containersare linked together, may be able to provide a rather “fluid” (or,alternatively, a “non-fluid”) experience between effect containers whenpresenting a media presentation/slideshow. For example, transitions maybe the visual action/expression of a page flipping, a slide dissolving,a slide being pushed along in any direction, a cube breaking apart (or,being assembled), a page rolling for the purpose of unveiling/hidingcontents, a puzzle being assembled (or, disassembled), or any other typeof visual action/expression applied to an effect container or slide andcapable of being rendered on a display device. Slides in the exemplaryapplication may be the actual image, movie, text, or other media contentthat may be within an effect, which may be within an effect container(e.g., steps 6002, 7002). Slides may have frames applied as an addedlayer (e.g., on top), where a frame may be a visual element/expressionsuch as, for example, making an image appear as if it was taken using aninstant photo camera (e.g., Polaroid®), is part of a filmstrip, has asolid/dashed/shadowed/other border surrounding it, or other type offrame-related visual element/expression. Further, each slide may have ananimation path 3014 that may determine which part of a slide image,movie, text, or other media content, is actually displayed/played;similarly, an animation path 3014 associated with the slide may cause apanning/zooming effect to be executed on the image, movie, text, orother media content, where the panning/zooming may occur within theeffect of the slide. As applied to a layer, a user may also customize ananimation path 3014 via the exemplary application 1000 to, for example,smoothly transition a layer's rotation from around zero (0) degrees allthe way to three hundred sixty (360) degrees, over a default or customperiod of time (e.g., steps 6002, 7002). In some embodiments,transitions 1014 may have durations associated with them to determinehow long the transitions are played. The transition duration may besubtracted directly from the total duration of the effect containersseparated/divided by the transition. For example, when transitioningfrom an effect container with a three (3) second duration to anothereffect container with a three (3) second duration, that is, having a six(6) second total duration, using a transition with a one (1) secondduration, the effect containers may only be played for a total of five(5) seconds (i.e., the total six (6) second duration of the effectcontainers minus the one (1) second transition display/play durationleaves five (5) seconds of display/play duration for the effectcontainers).

In some embodiments, effect containers may be able to determine theorder that images (or, alternatively, other media content) associatedwith a layer (e.g., steps 6002, 7002) are presented during a mediapresentation/slideshow. Such a determination may be based according tocharacteristics associated with the images (or, alternatively, othermedia content) (e.g., steps 6004, 7004). The characteristics maycomprise a resolution, size, quality indicator, dots-per-inch, framesper second, window size, bit error rate (BER), compression type, or someother media content characteristic. The exemplary application 1000 mayexecute this process of assembling the layers (e.g., steps 6004, 7004)either manually or according to algorithms processing thecharacteristics and other layer-related data (described above). Furtherwith respect to effect containers (e.g., a container or group ofeffects), multiple effects may be transitioned as one set into the nexteffect container. For example, effect containers are necessary in orderfor different text to be displayed on top of different effects. In someembodiments, from an implementation viewpoint, the effect containerspermit the logical/physical grouping of different effects and link eachof the effects to their respective different text, which is to bedisplayed on top of each respective effect. Each effect container may,for example, further contain a variable for storing a specific durationfor determining how long each of the effects associated with an effectcontainer (or, alternatively, “within” the effect container) aredisplayed/played.

In some embodiments, a keyframe 3015 (which may, for example, be onedimensional (1D) 3016, two dimensional (2D) 3017 or a vector (3018)),may be used by an animation path 3014 to guide or instruct the rate atwhich animation path 3014 should operate. Meaning, the higher the valueof a keyframe 3015, the increased rate the animation path 3014 mayoperate (e.g., a faster pan-zoom effect or a faster layer rotation), andthe lower the value of a keyframe 3015, the lower rate the animationpath 3014 may operate at (e.g., a slower pan-zoom effect or a slowerlayer rotation). A 1D 3016 keyframe may be a keyframe that animates aproperty that has one value like, for example, a rotation angle. A 2D3017 keyframe may be a keyframe that animates a property that has morethan one value like, for example, a position (x-axis point, y-axispoint) or a size (width/length, height). And, a vector 3018 keyframe maybe a keyframe that animates a property that has more than two valueslike, for example, colors that manipulate the different values of theirconstituent color components (e.g., red, green, blue, alpha).

In some embodiments, filters 3019 operate as visual elements that areapplied to a layer, effect container, effect, or slide. A filter 3019may be, for example, a shadow, blurred image, or some other compatiblevisual element capable of being applied to a layer, effect container,effect, or slide (e.g., steps 6002, 7002).

In some embodiments, a playlist 3008 associated with a document 1001 maycontain a list of songs (e.g., steps 6002, 7002). The playlist 3008 mayorganize songs such that they are played in a specific order, determinedmanually by a user of the exemplary application 1000, or automaticallythrough the exemplary application 1000. An automatic playlist may becreated according to song genre, file characteristics (e.g., type, size,date, etc.), or according to the feature for dynamically profiling aslideshow soundtrack based on various criteria like beats per minute(BPM), rhythmic strength (RS), harmonic complexity (HC), and/or rootmean square density (RMS or RMS strength). The songs (e.g., a referenceto a playlist) may be stored in digital format in local storage 4006 oron an auxiliary device/component 4005 that communicates with the system4000 through a communications protocol or standard. The songs may bestored in a single file (or, other logical/physical data aggregator) ormany files. In addition to songs, a playlist 3008 may contain othercompatible media content like videos with audio content (which, forexample, may be parsed from the video file into an individual song/audiofile, or playlist). To associate a playlist, song/audio file, or anycompatible media content with a document 1001, the user may selectit/them from the select media content 1008 menu and drag the respectiveplaylist, song/audio file, or other compatible media content, via theexemplary application 1000, into the effect containers region 1003 (see,for example, the reference to “Drag Audio Here” in the exemplaryapplication 1000) (e.g., steps 6002, 7002). Songs may be played in thebackground while a document is being displayed/played, or they may,alternatively, be associated with foreground layers or effects that maybe organized on top of another, thus, enabling the songs to be switchedin coordination with the various switching (e.g., via gaps ortransitions) from one layer or effect to another (e.g., steps 6004,7004). Further, songs may, according to a default setting, start andstop playing based on the start and stop times that may be given from amedia player or media management application. The user of the exemplaryapplication 1000 may, however, define a custom start or stop time via asong (or, playlist) menu option of the application 1000.

FIG. 2 illustrates features of an exemplary embodiment in accordancewith the present invention. As illustrated, the exemplary embodiment ofan add effects container region 2000 (similar to that of 1003; FIG. 1)contains three layers, the first is a background layer 2001, and thesecond and third are foreground layers 2002 and 2003 (e.g., steps 6001,7001, 6002, 7002, 7008, 7009). Effect containers are illustrated as2004, 2005, and 2006 in the background layer 2001. The foreground layers2002 and 2003 also contain effect containers. Each effect container haseffects with slides/media content within, such as illustrated by theslides (e.g., images) 2011 and 2013 in the second foreground layer 2003.Moreover, gaps 2007, 2008, 2009 separate effect containers in foregroundlayers 2002 and 2003. Also, transition 2010 separates (or, “link”)effect containers in the foreground layer 2003. Further, an effectsstyle 2012 is illustrated for the second effect container of the secondforeground layer 2003 (e.g., step 7007). The effects style may displayone or more styles or properties such as, for example, a mediapresentation order, a thumbnail, a layout, a position, a size, azPosition (e.g., the position in a three-dimensional (x, y, z)orientation), a base period, an effect presets, an effect settingsoverwrite, a matching layer duration, a recommended effect duration, atransition preset, a transition settings overwrite, a recommendedtransition duration, a filter preset, a filter preset criteria, a filterlikelihood, a gap likelihood, a layer importance, a slide filter presetcriteria, a slide frames criteria, an automatic filter likelihood, and asupport per-slide customization (e.g., step 7014). Other styles orproperties may also be displayed at 2012 or in another section of thegraphical user interface of the exemplary application 1000 or at thecontainer region 2000 like, for example, a background color and anautomatic filter mode (e.g., step 7015). The styles or properties mayapply to the effects, effect containers, layers, and/or document, andmay further be customized for each of the foregoing or inherited fromeach other, whether set by default or is customized (e.g., step 7007).

FIG. 2A illustrates features of an exemplary embodiment in accordancewith the present invention. The exemplary embodiment 2000A illustratesan effect container 2020 with a phaseIn effect 2021, a main effect 2022,and a phaseOut effect 2023. Also, the blurred image (or, movie or othermedia content) shown behind the “main” text illustrates an exemplaryinstance of a blurred effect during the main effect 2022 phase of theeffect container 2020. The phaseIn effect 2021 (e.g., like a fade-in)may be used, for example, to build a single/multi-slide layout, where asthe phaseOut effect 2023 (e.g., like a fade-out) may be used, forexample, to tear down/away or remove a single/multi-slide layout. Thus,the phaseIn 2021, main 2022, and phaseOut 2023 effects may be applied toa single slide or to multiple slides. Furthermore, there may be a timeassociated with each phaseIn effect 2021, main effect 20222, andphaseOut effect 2023. The time spent on each slide of a multi-slideeffect may be equally divided among the individual slides (e.g., totaleffect time divided by the total number of slide, and adjustedaccordingly) or apportioned in a custom manner to each individual slide.

FIG. 3 is a block diagram illustrating framework features of anexemplary embodiment in accordance with the present invention. In someembodiments, the exemplary application 1000 executing on the exemplarysystem 4000 may cause the CPU 4001 to execute instructions for creatingan electronic structure (e.g., 3000) for storage in memory 4002, localstorage 4006, or on an auxiliary device/component 4005, suchinstructions may comprise: creating a document (e.g., 3001); associatingone or more layers (e.g., 3002) to the document, wherein the layers(e.g., 3002) are organized within the document (e.g., 3002); associatingone or more effect containers (e.g., 3003) with the layers, wherein theeffect containers (e.g., 3003) are linked and are organized within thelayers (e.g., 3003); associating one or more effects (e.g., 3004) withthe effect containers (e.g., 3004); and assembling the effects (e.g.,3004), effect containers (e.g., 3003), and layers (e.g., 3002) logicallywithin the document. The application features 3000-3019 are referred toand described in detail herein, and in view of the exemplary application1000, which may be executed, for example, on the exemplary system 4000.

FIG. 3A is a block diagram illustrating framework features of anexemplary embodiment in accordance with the present invention. Theframework features 3000A may comprise framework module units (or,modules) such as, for example, a core 3020, a producer 3021, a renderer3022, and an exporter 3023. The features 3000A may implement thestructure/architecture of the exemplary application 1000, and may beexecuted, for example, using a system like that illustrated in FIGS.4-5.

In some embodiments, the core 3020 module may be considered thelow-level data structure module and it may, for example, performroutines for representing how a slideshow/media presentation document isconstructed, and contain the necessary information for accuratelyrepresenting a slideshow/media presentation document according tofeatures, many of which are described herein (e.g., steps 6001-6003,7001-7003). Some of those features may include, for example, featuresrelated to timing (e.g., gaps 1013, transitions 1014), positioning(e.g., background layer 1004, foreground layer 1005, effects of effectcontainers 2004-2006, slides 2011, filters 3019, text 3010), sizing(e.g., keyframe 3015, animation path 3014, as well as theirinteraction), and files (e.g., songs 3008, playlists 3009).

In some embodiments, the producer 3021 may be considered the module forcreating how a slideshow will look and feel (e.g., steps 6002-6003,7002-7003), performing several analyses related to media content (e.g.,images, audio, video of layers, effect containers, effects, and slides)(e.g., step 7016), and automatically assembling slideshows/mediapresentations according to data that may result from the analyses (e.g.,steps 6004, 7004, 7011). The several analyses (e.g., step 7016) mayinclude analysis of characteristics related to layers, effectcontainers, effects, and slides. Such characteristics may include, forexample, layer type (e.g., background 1004, foreground 1005), layernumber (e.g., position in relation to the background-most layer 1004),number of effect containers, length of gaps 1013 and transitions 1014,type of transitions 1014, type of effects, number of effects, number ofslides, type of slides, document length 1004, user preferences (e.g.,for ordering layers, effect containers, effects, slides), audioanalyses, video analyses, or other similar characteristics. Afterperforming the several analyses using, for example, the producer 3021,the resulting data from the several analyses may be processed by theproducer 3021, the core 3020, the renderer 3022, the exporter 3023, orother module (e.g., step 7017). The producer 3021 may, for example,interface with and utilize the application programming interfaces (API)of frameworks like, for example, browsers or QuickTime® to gather suchinformation as thumbnail data and resolutions for images, as well asaudio or video durations or other characteristics. The gatheredinformation may then be processed by the producer 3021 in accordancewith one or more general/specific algorithms (or, other analyticalmethods) and then used by the producer 3021 (or, other module with whichthe producer 3021 may call), for example, to automatically assemble aslideshow or media presentation document (e.g., 7011). The producer 3021may further, for example, assemble a document via core 3020 forplay/display using the features of renderer 3022, by accessing photosand coupling such photos with a style (e.g., 1015). In addition, theproducer 3021 may also, for example, perform audio analysis functions onsongs 3009 or a set of songs (playlist 3008) using such analysis like,for example, beat detection/mapping. The producer 3021 may also keeptrack of available styles (e.g., 1015), effects 3004, transitions 3012,and frames 3006.

In some embodiments, the renderer 3022 may be considered theplay/display module. The renderer 3022 may receive slideshow/mediapresentation data from, for example, the core 3020 and producer 3021 andmay render such data such that it may be sent to a graphics card orother display device (or interface) (e.g., 4003). The renderer 3022 mayinterface with QuickTime® media player (e.g., the framework ofQuickTime® media player) or another compatible application (or,framework) for audio/video decoding. In addition, the renderer 3022 mayalso interface with a composer-type application for actual rendering(e.g., of the slides), and the same or another similar application forapplying filters 3006.

In some embodiments, the exporter 3023 may be considered the sharingmodule. The exporter 3023 may, for example, use renderer 3022 to exportthe slideshow/media presentation document to different formats (e.g.,file formats) like those supported by QuickTime® or other similarapplications. The exporter 3023 may, for example, obtain movieframe-type data from renderer 3022 and add it to a movie-type file. Whenthe exporter 3023 is finished retrieving data for each movie, theslideshow/media presentation document would be available for access andsharing through the exemplary application 1000 or other applicationsthat may access or handle the document in its final format.

FIG. 4 illustrates an exemplary system implementing an application inaccordance with the present invention. The exemplary system 4000,described above, may implement the exemplary application 1000. Othermodules and other routine programming-related matters may not be shownin FIG. 4, but would be understood and may be implemented by one ofordinary skill in the art without departing from the scope of thepresent invention.

FIG. 5 illustrates an exemplary implementation of an application inaccordance with the present invention. The module units 5001-5004 and5010-5013 of the exemplary implementation of an application 5000 aredescribed more fully above for FIG. 3A. The module units 5001-5004 and5010-5013 may be implemented, for example, by a standalone 4008, 5008 oran embedded 4009, 5009 application, respectively. Further, an exemplarysystem such as that illustrated in FIG. 4 may execute the standalone4008, 5008 or embedded 4009, 5009 applications. Other compatible orsimilar systems may also execute the applications 4008, 5008 and 4009,5009 without departing from the scope of the present invention.

FIG. 6 illustrates an exemplary method in accordance with the presentinvention. The exemplary method 6000 comprises the followingcomputer-implemented steps: defining a layer, wherein the layercomprises one or more effects 6001; associating media content with thelayer 6002; aggregating the layer with one or more other layers 6003;and assembling the aggregated layer 6004. The exemplary method 6000 and,further, steps 6001-6004 may be implemented using an exemplary systemsuch as that embodied in FIG. 4, which may execute the exemplaryapplication 1000, and as described herein.

FIG. 7 illustrates an exemplary method in accordance with the presentinvention. The exemplary method 7000 comprises the computer-implementedsteps of the exemplary method 6000 with the addition of steps 7005-7015.The exemplary method 7000 and, further, steps 7001-7015 may beimplemented using an exemplary system such as that embodied in FIG. 4,which may execute the exemplary application 1000, and as describedherein.

It will be apparent to those skilled in the art that variousmodifications and variations can be made to the present inventionwithout departing from the spirit or scope of the invention. Thus, it isintended that the present invention cover the modifications andvariations of this invention provided they come within the scope of theappended claims and their equivalents.

1. A computer-implemented method for authoring media presentations,comprising: defining a layer, wherein the layer comprises one or moreeffects; associating media content with the layer; aggregating the layerwith one or more other layers; and assembling the aggregated layers. 2.The computer-implemented method of claim 1, wherein the effects areseparated by a gap, a transition, or an effect separation variable. 3.The computer-implemented method of claim 1, wherein the effects areassociated with one or more slides.
 4. The computer-implemented methodof claim 3, wherein the slides refer to media content.
 5. Thecomputer-implemented method of claim 4, wherein the media contentcomprises an image, a video, or an audio.
 6. The computer-implementedmethod of claim 1, wherein the effects are associated with a style,style property, or document property.
 7. The computer-implemented methodof claim 1, wherein the layer is a background layer or a foregroundlayer.
 8. The computer-implemented method of claim 1, wherein the otherlayers are background layers or foreground layers.
 9. Thecomputer-implemented method of claim 1, wherein aggregated layers areone or more background layers and foreground layers.
 10. Thecomputer-implemented method of claim 6, wherein the style comprises oneor more style properties from the group comprising: a media presentationorder, a thumbnail, a layout, a position, a size, a zPosition, a baseperiod, an effect presets, an effect settings overwrite, a matchinglayer duration, a recommended effect duration, a transition preset, atransition settings overwrite, a recommended transition duration, afilter preset, a filter preset criteria, a filter likelihood, a gaplikelihood, a layer importance, a slide filter preset criteria, a slideframes criteria, an automatic filter likelihood, and a support per-slidecustomization.
 11. The computer-implemented method of claim 6, whereinthe style comprises one or more document properties from the groupcomprising: a background color and an automatic filter mode.
 12. Thecomputer-implemented method of claim 1, wherein the assembling step isperformed automatically.
 13. The computer-implemented method of claim12, wherein the assembling step comprises the step of performing severalanalyses related to the media content.
 14. The computer-implementedmethod of claim 13, wherein the assembling step comprises the step ofprocessing data resulting from the several analyses related to the mediacontent.
 15. The computer-implemented method of claim 1, wherein theaggregating step further comprises the step of logically associating thelayer with the one or more other layers.
 16. The computer-implementedmethod of claim 15, wherein logically associating comprises ordering thelayer with reference to a background layer.
 17. The computer-implementedmethod of claim 1, wherein a plurality of the assembled layers create adocument.
 18. A system for authoring media presentations, comprising:one or more processors; memory; one or more programs stored in memory,the one or more programs comprising instructions to: define a layer,wherein the layer comprises one or more effects; associate media contentwith the layer; aggregate the layer with one or more other layers; andassemble the aggregated layers.
 19. The system of claim 18, wherein theeffects are separated by a gap, a transition, or an effect separationvariable.
 20. The system of claim 18, wherein the effects are associatedwith one or more slides.
 21. The system of claim 20, wherein the slidesrefer to media content.
 22. The system of claim 21, wherein the mediacontent comprises an image, a video, or an audio.
 23. The system ofclaim 18, wherein the effects are associated with a style, styleproperty, or document property.
 24. The system of claim 18, wherein thelayer is a background layer or a foreground layer.
 25. The system ofclaim 18, wherein the other layers are background layers or foregroundlayers.
 26. The system of claim 18, wherein aggregated layers are one ormore background layers and foreground layers.
 27. The system of claim23, wherein the style comprises one or more style properties from thegroup comprising: a media presentation order, a thumbnail, a layout, aposition, a size, a zPosition, a base period, an effect presets, aneffect settings overwrite, a matching layer duration, a recommendedeffect duration, a transition preset, a transition settings overwrite, arecommended transition duration, a filter preset, a filter presetcriteria, a filter likelihood, a gap likelihood, a layer importance, aslide filter preset criteria, a slide frames criteria, an automaticfilter likelihood, and a support per-slide customization.
 28. The systemof claim 23, wherein the style comprises one or more document propertiesfrom the group comprising: a background color and an automatic filtermode.
 29. The system of claim 18, wherein the assemble instruction isperformed automatically.
 30. The system of claim 29, wherein theassemble instruction comprises an instruction to perform severalanalyses related to the media content.
 31. The system of claim 30,wherein the assemble instruction comprises an instruction to processdata resulting from the several analyses related to the media content.32. The system of claim 18, wherein the aggregate instruction furthercomprises an instruction to logically associate the layer with the oneor more other layers.
 33. The system of claim 32, wherein theinstruction to logically associate comprises an instruction to order thelayer with reference to a background layer.
 34. The system of claim 18,wherein a plurality of the assembled layers create a document.
 35. Acomputer-readable storage medium storing one or more programs configuredfor execution by a computer, the one or more programs comprisinginstructions to: define a layer, wherein the layer comprises one or moreeffects; associate media content with the layer; aggregate the layerwith one or more other layers; and assemble the aggregated layers.
 36. Acomputer program product storing one or more instructions for executionby a computer, the one or more instructions comprising: creating adocument; associating one or more layers to the document, wherein thelayers are organized within the document; associating one or more effectcontainers with the layers, wherein the effect containers are linked andare organized within the layers; associating one or more effects withthe effect containers; and assembling the effects, effect containers,and layers logically within the document.